What is buffer-crc32?
The buffer-crc32 package is a Node.js module for calculating CRC32 checksums of buffers. It's a fast and simple utility for generating checksums of data, which can be useful for verifying the integrity of data being transferred over a network or stored.
What are buffer-crc32's main functionalities?
Calculate CRC32 checksum
This feature allows you to calculate the CRC32 checksum of a given buffer. The code sample demonstrates how to calculate the checksum of a 'Hello World' string.
const crc32 = require('buffer-crc32');
const buffer = Buffer.from('Hello World');
const checksum = crc32(buffer);
console.log(checksum.toString('hex'));
Update existing checksum with new data
This feature enables you to update an existing checksum with new data. The code sample shows how to calculate the checksum for 'Hello', then update it with ' World' to get the checksum for 'Hello World'.
const crc32 = require('buffer-crc32');
let checksum = crc32(Buffer.from('Hello'));
checksum = crc32(Buffer.from(' World'), checksum);
console.log(checksum.toString('hex'));
Other packages similar to buffer-crc32
crc
The 'crc' package offers a wider range of CRC algorithms, including CRC32. It provides more flexibility compared to buffer-crc32 but might be slightly more complex to use for simple CRC32 calculations.
crc32-stream
This package is designed for streaming data and calculating CRC32 checksums on the fly. It's more suited for scenarios where data is being processed in streams, compared to buffer-crc32 which works on buffers.
buffer-crc32
crc32 that works with binary data and fancy character sets, outputs
buffer, signed or unsigned data and has tests.
Derived from the sample CRC implementation in the PNG specification: http://www.w3.org/TR/PNG/#D-CRCAppendix
This package requires Node 8+ to work.
install
npm install buffer-crc32
example
const crc32 = require('buffer-crc32');
const buf = Buffer([0x00, 0x73, 0x75, 0x70, 0x20, 0x62, 0x72, 0x6f, 0x00]);
crc32(buf);
crc32.signed(buf);
crc32.unsigned(buf);
crc32('自動販売機');
const partialCrc = crc32('hey');
const partialCrc = crc32(' ', partialCrc);
const partialCrc = crc32('sup', partialCrc);
const partialCrc = crc32(' ', partialCrc);
const finalCrc = crc32('bros', partialCrc);
tests
This was tested against the output of zlib's crc32 method. You can run
the tests withnpm test
(requires tap)
see also
https://github.com/alexgorbatchev/node-crc, crc.buffer.crc32
also
supports buffer inputs and return unsigned ints (thanks @tjholowaychuk).
license
MIT/X11